<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Eigen: Eigen::ComplexEigenSolver&lt; MatrixType_ &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen</a>
   &#160;<span id="projectnumber">3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classEigen_1_1ComplexEigenSolver.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classEigen_1_1ComplexEigenSolver-members.html">List of all members</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Eigen::ComplexEigenSolver&lt; MatrixType_ &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__DenseLinearSolvers__chapter.html">Dense linear problems and decompositions</a> &raquo; <a class="el" href="group__DenseLinearSolvers__Reference.html">Reference</a> &raquo; <a class="el" href="group__Eigenvalues__Module.html">Eigenvalues module</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename MatrixType_&gt;<br />
class Eigen::ComplexEigenSolver&lt; MatrixType_ &gt;</h3>

<p>Computes eigenvalues and eigenvectors of general complex matrices. </p>
<p>This is defined in the Eigenvalues module.</p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;Eigen/Eigenvalues&gt;</span> </div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">MatrixType_</td><td>the type of the matrix of which we are computing the eigendecomposition; this is expected to be an instantiation of the <a class="el" href="classEigen_1_1Matrix.html" title="The matrix class, also used for vectors and row-vectors.">Matrix</a> class template.</td></tr>
  </table>
  </dd>
</dl>
<p>The eigenvalues and eigenvectors of a matrix \( A \) are scalars \( \lambda \) and vectors \( v \) such that \( Av = \lambda v \). If \( D \) is a diagonal matrix with the eigenvalues on the diagonal, and \( V \) is a matrix with the eigenvectors as its columns, then \( A V = V D \). The matrix \( V \) is almost always invertible, in which case we have \( A = V D V^{-1} \). This is called the eigendecomposition.</p>
<p>The main function in this class is <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a850a4061eb932a8a30698551201f9cd1" title="Computes eigendecomposition of given matrix.">compute()</a>, which computes the eigenvalues and eigenvectors of a given function. The documentation for that function contains an example showing the main features of the class.</p>
<dl class="section see"><dt>See also</dt><dd>class <a class="el" href="classEigen_1_1EigenSolver.html" title="Computes eigenvalues and eigenvectors of general matrices.">EigenSolver</a>, class <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html" title="Computes eigenvalues and eigenvectors of selfadjoint matrices.">SelfAdjointEigenSolver</a> </dd></dl>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a2ac2cfde9d0f3012e059c8d8e2ba7db7"><td class="memItemLeft" align="right" valign="top">typedef std::complex&lt; RealScalar &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a2ac2cfde9d0f3012e059c8d8e2ba7db7">ComplexScalar</a></td></tr>
<tr class="memdesc:a2ac2cfde9d0f3012e059c8d8e2ba7db7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Complex scalar type for <a class="el" href="classEigen_1_1ComplexEigenSolver.html#ac9cbc46e4029e5270233f2e5935ca7c5" title="Synonym for the template parameter MatrixType_.">MatrixType</a>.  <a href="classEigen_1_1ComplexEigenSolver.html#a2ac2cfde9d0f3012e059c8d8e2ba7db7">More...</a><br /></td></tr>
<tr class="separator:a2ac2cfde9d0f3012e059c8d8e2ba7db7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1d033d8c14e9461203d960c000bb72b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classEigen_1_1Matrix.html">Matrix</a>&lt; <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a2ac2cfde9d0f3012e059c8d8e2ba7db7">ComplexScalar</a>, ColsAtCompileTime, 1, Options &amp;(~<a class="el" href="group__enums.html#ggaacded1a18ae58b0f554751f6cdf9eb13a77c993a8d9f6efe5c1159fb2ab07dd4f">RowMajor</a>), MaxColsAtCompileTime, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#af1d033d8c14e9461203d960c000bb72b">EigenvalueType</a></td></tr>
<tr class="memdesc:af1d033d8c14e9461203d960c000bb72b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for vector of eigenvalues as returned by <a class="el" href="classEigen_1_1ComplexEigenSolver.html#ab653e145059038d279758e0732045149" title="Returns the eigenvalues of given matrix.">eigenvalues()</a>.  <a href="classEigen_1_1ComplexEigenSolver.html#af1d033d8c14e9461203d960c000bb72b">More...</a><br /></td></tr>
<tr class="separator:af1d033d8c14e9461203d960c000bb72b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f3a8e3a570ca7e6df9a5ebfaa832d59"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classEigen_1_1Matrix.html">Matrix</a>&lt; <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a2ac2cfde9d0f3012e059c8d8e2ba7db7">ComplexScalar</a>, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8f3a8e3a570ca7e6df9a5ebfaa832d59">EigenvectorType</a></td></tr>
<tr class="memdesc:a8f3a8e3a570ca7e6df9a5ebfaa832d59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for matrix of eigenvectors as returned by <a class="el" href="classEigen_1_1ComplexEigenSolver.html#af9619dd3f289e8659131789039901202" title="Returns the eigenvectors of given matrix.">eigenvectors()</a>.  <a href="classEigen_1_1ComplexEigenSolver.html#a8f3a8e3a570ca7e6df9a5ebfaa832d59">More...</a><br /></td></tr>
<tr class="separator:a8f3a8e3a570ca7e6df9a5ebfaa832d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bd6f818f11487fa2eb4b01cb920ace6"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceEigen.html#a62e77e0933482dafde8fe197d9a2cfde">Eigen::Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8bd6f818f11487fa2eb4b01cb920ace6">Index</a></td></tr>
<tr class="separator:a8bd6f818f11487fa2eb4b01cb920ace6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9cbc46e4029e5270233f2e5935ca7c5"><td class="memItemLeft" align="right" valign="top"><a id="ac9cbc46e4029e5270233f2e5935ca7c5"></a>
typedef MatrixType_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#ac9cbc46e4029e5270233f2e5935ca7c5">MatrixType</a></td></tr>
<tr class="memdesc:ac9cbc46e4029e5270233f2e5935ca7c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synonym for the template parameter <code>MatrixType_</code>. <br /></td></tr>
<tr class="separator:ac9cbc46e4029e5270233f2e5935ca7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a529599511298b96c3aa8c076807adcd9"><td class="memItemLeft" align="right" valign="top"><a id="a529599511298b96c3aa8c076807adcd9"></a>
typedef MatrixType::Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a529599511298b96c3aa8c076807adcd9">Scalar</a></td></tr>
<tr class="memdesc:a529599511298b96c3aa8c076807adcd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar type for matrices of type <a class="el" href="classEigen_1_1ComplexEigenSolver.html#ac9cbc46e4029e5270233f2e5935ca7c5" title="Synonym for the template parameter MatrixType_.">MatrixType</a>. <br /></td></tr>
<tr class="separator:a529599511298b96c3aa8c076807adcd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a47423d74e9d6d1c1583ddf0d0739c38b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a47423d74e9d6d1c1583ddf0d0739c38b">ComplexEigenSolver</a> ()</td></tr>
<tr class="memdesc:a47423d74e9d6d1c1583ddf0d0739c38b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="classEigen_1_1ComplexEigenSolver.html#a47423d74e9d6d1c1583ddf0d0739c38b">More...</a><br /></td></tr>
<tr class="separator:a47423d74e9d6d1c1583ddf0d0739c38b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b1ad5564efbd25fc8f8f0321424e821"><td class="memTemplParams" colspan="2">template&lt;typename InputType &gt; </td></tr>
<tr class="memitem:a6b1ad5564efbd25fc8f8f0321424e821"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a6b1ad5564efbd25fc8f8f0321424e821">ComplexEigenSolver</a> (const <a class="el" href="structEigen_1_1EigenBase.html">EigenBase</a>&lt; InputType &gt; &amp;matrix, bool computeEigenvectors=true)</td></tr>
<tr class="memdesc:a6b1ad5564efbd25fc8f8f0321424e821"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor; computes eigendecomposition of given matrix.  <a href="classEigen_1_1ComplexEigenSolver.html#a6b1ad5564efbd25fc8f8f0321424e821">More...</a><br /></td></tr>
<tr class="separator:a6b1ad5564efbd25fc8f8f0321424e821"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37240ce1bf2092c91d3bcb93ce30d9a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a37240ce1bf2092c91d3bcb93ce30d9a9">ComplexEigenSolver</a> (<a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8bd6f818f11487fa2eb4b01cb920ace6">Index</a> size)</td></tr>
<tr class="memdesc:a37240ce1bf2092c91d3bcb93ce30d9a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Constructor with memory preallocation.  <a href="classEigen_1_1ComplexEigenSolver.html#a37240ce1bf2092c91d3bcb93ce30d9a9">More...</a><br /></td></tr>
<tr class="separator:a37240ce1bf2092c91d3bcb93ce30d9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a850a4061eb932a8a30698551201f9cd1"><td class="memTemplParams" colspan="2">template&lt;typename InputType &gt; </td></tr>
<tr class="memitem:a850a4061eb932a8a30698551201f9cd1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1ComplexEigenSolver.html">ComplexEigenSolver</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a850a4061eb932a8a30698551201f9cd1">compute</a> (const <a class="el" href="structEigen_1_1EigenBase.html">EigenBase</a>&lt; InputType &gt; &amp;matrix, bool computeEigenvectors=true)</td></tr>
<tr class="memdesc:a850a4061eb932a8a30698551201f9cd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes eigendecomposition of given matrix.  <a href="classEigen_1_1ComplexEigenSolver.html#a850a4061eb932a8a30698551201f9cd1">More...</a><br /></td></tr>
<tr class="separator:a850a4061eb932a8a30698551201f9cd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab653e145059038d279758e0732045149"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classEigen_1_1ComplexEigenSolver.html#af1d033d8c14e9461203d960c000bb72b">EigenvalueType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#ab653e145059038d279758e0732045149">eigenvalues</a> () const</td></tr>
<tr class="memdesc:ab653e145059038d279758e0732045149"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the eigenvalues of given matrix.  <a href="classEigen_1_1ComplexEigenSolver.html#ab653e145059038d279758e0732045149">More...</a><br /></td></tr>
<tr class="separator:ab653e145059038d279758e0732045149"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9619dd3f289e8659131789039901202"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8f3a8e3a570ca7e6df9a5ebfaa832d59">EigenvectorType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#af9619dd3f289e8659131789039901202">eigenvectors</a> () const</td></tr>
<tr class="memdesc:af9619dd3f289e8659131789039901202"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the eigenvectors of given matrix.  <a href="classEigen_1_1ComplexEigenSolver.html#af9619dd3f289e8659131789039901202">More...</a><br /></td></tr>
<tr class="separator:af9619dd3f289e8659131789039901202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38b46258ce744304049583123897368c"><td class="memItemLeft" align="right" valign="top"><a id="a38b46258ce744304049583123897368c"></a>
<a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8bd6f818f11487fa2eb4b01cb920ace6">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a38b46258ce744304049583123897368c">getMaxIterations</a> ()</td></tr>
<tr class="memdesc:a38b46258ce744304049583123897368c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the maximum number of iterations. <br /></td></tr>
<tr class="separator:a38b46258ce744304049583123897368c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee79c3be45f7d1a8f6dcfffc421dca69"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__enums.html#ga85fad7b87587764e5cf6b513a9e0ee5e">ComputationInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#aee79c3be45f7d1a8f6dcfffc421dca69">info</a> () const</td></tr>
<tr class="memdesc:aee79c3be45f7d1a8f6dcfffc421dca69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports whether previous computation was successful.  <a href="classEigen_1_1ComplexEigenSolver.html#aee79c3be45f7d1a8f6dcfffc421dca69">More...</a><br /></td></tr>
<tr class="separator:aee79c3be45f7d1a8f6dcfffc421dca69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa84be4fa203b334eb9adbf5963cc54d0"><td class="memItemLeft" align="right" valign="top"><a id="aa84be4fa203b334eb9adbf5963cc54d0"></a>
<a class="el" href="classEigen_1_1ComplexEigenSolver.html">ComplexEigenSolver</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#aa84be4fa203b334eb9adbf5963cc54d0">setMaxIterations</a> (<a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8bd6f818f11487fa2eb4b01cb920ace6">Index</a> maxIters)</td></tr>
<tr class="memdesc:aa84be4fa203b334eb9adbf5963cc54d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the maximum number of iterations allowed. <br /></td></tr>
<tr class="separator:aa84be4fa203b334eb9adbf5963cc54d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a2ac2cfde9d0f3012e059c8d8e2ba7db7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ac2cfde9d0f3012e059c8d8e2ba7db7">&#9670;&nbsp;</a></span>ComplexScalar</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef std::complex&lt;RealScalar&gt; <a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::<a class="el" href="classEigen_1_1ComplexEigenSolver.html#a2ac2cfde9d0f3012e059c8d8e2ba7db7">ComplexScalar</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Complex scalar type for <a class="el" href="classEigen_1_1ComplexEigenSolver.html#ac9cbc46e4029e5270233f2e5935ca7c5" title="Synonym for the template parameter MatrixType_.">MatrixType</a>. </p>
<p>This is <code>std::complex&lt;Scalar&gt;</code> if <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a529599511298b96c3aa8c076807adcd9" title="Scalar type for matrices of type MatrixType.">Scalar</a> is real (e.g., <code>float</code> or <code>double</code>) and just <code>Scalar</code> if <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a529599511298b96c3aa8c076807adcd9" title="Scalar type for matrices of type MatrixType.">Scalar</a> is complex. </p>

</div>
</div>
<a id="af1d033d8c14e9461203d960c000bb72b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1d033d8c14e9461203d960c000bb72b">&#9670;&nbsp;</a></span>EigenvalueType</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classEigen_1_1Matrix.html">Matrix</a>&lt;<a class="el" href="classEigen_1_1ComplexEigenSolver.html#a2ac2cfde9d0f3012e059c8d8e2ba7db7">ComplexScalar</a>, ColsAtCompileTime, 1, Options&amp;(~<a class="el" href="group__enums.html#ggaacded1a18ae58b0f554751f6cdf9eb13a77c993a8d9f6efe5c1159fb2ab07dd4f">RowMajor</a>), MaxColsAtCompileTime, 1&gt; <a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::<a class="el" href="classEigen_1_1ComplexEigenSolver.html#af1d033d8c14e9461203d960c000bb72b">EigenvalueType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Type for vector of eigenvalues as returned by <a class="el" href="classEigen_1_1ComplexEigenSolver.html#ab653e145059038d279758e0732045149" title="Returns the eigenvalues of given matrix.">eigenvalues()</a>. </p>
<p>This is a column vector with entries of type <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a2ac2cfde9d0f3012e059c8d8e2ba7db7" title="Complex scalar type for MatrixType.">ComplexScalar</a>. The length of the vector is the size of <a class="el" href="classEigen_1_1ComplexEigenSolver.html#ac9cbc46e4029e5270233f2e5935ca7c5" title="Synonym for the template parameter MatrixType_.">MatrixType</a>. </p>

</div>
</div>
<a id="a8f3a8e3a570ca7e6df9a5ebfaa832d59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f3a8e3a570ca7e6df9a5ebfaa832d59">&#9670;&nbsp;</a></span>EigenvectorType</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classEigen_1_1Matrix.html">Matrix</a>&lt;<a class="el" href="classEigen_1_1ComplexEigenSolver.html#a2ac2cfde9d0f3012e059c8d8e2ba7db7">ComplexScalar</a>, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime&gt; <a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::<a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8f3a8e3a570ca7e6df9a5ebfaa832d59">EigenvectorType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Type for matrix of eigenvectors as returned by <a class="el" href="classEigen_1_1ComplexEigenSolver.html#af9619dd3f289e8659131789039901202" title="Returns the eigenvectors of given matrix.">eigenvectors()</a>. </p>
<p>This is a square matrix with entries of type <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a2ac2cfde9d0f3012e059c8d8e2ba7db7" title="Complex scalar type for MatrixType.">ComplexScalar</a>. The size is the same as the size of <a class="el" href="classEigen_1_1ComplexEigenSolver.html#ac9cbc46e4029e5270233f2e5935ca7c5" title="Synonym for the template parameter MatrixType_.">MatrixType</a>. </p>

</div>
</div>
<a id="a8bd6f818f11487fa2eb4b01cb920ace6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8bd6f818f11487fa2eb4b01cb920ace6">&#9670;&nbsp;</a></span>Index</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="namespaceEigen.html#a62e77e0933482dafde8fe197d9a2cfde">Eigen::Index</a> <a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::<a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8bd6f818f11487fa2eb4b01cb920ace6">Index</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000012">Deprecated:</a></b></dt><dd>since <a class="el" href="namespaceEigen.html" title="Namespace containing all symbols from the Eigen library.">Eigen</a> 3.3 </dd></dl>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a47423d74e9d6d1c1583ddf0d0739c38b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47423d74e9d6d1c1583ddf0d0739c38b">&#9670;&nbsp;</a></span>ComplexEigenSolver() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::<a class="el" href="classEigen_1_1ComplexEigenSolver.html">ComplexEigenSolver</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default constructor. </p>
<p>The default constructor is useful in cases in which the user intends to perform decompositions via <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a850a4061eb932a8a30698551201f9cd1" title="Computes eigendecomposition of given matrix.">compute()</a>. </p>

</div>
</div>
<a id="a37240ce1bf2092c91d3bcb93ce30d9a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37240ce1bf2092c91d3bcb93ce30d9a9">&#9670;&nbsp;</a></span>ComplexEigenSolver() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::<a class="el" href="classEigen_1_1ComplexEigenSolver.html">ComplexEigenSolver</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8bd6f818f11487fa2eb4b01cb920ace6">Index</a>&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default Constructor with memory preallocation. </p>
<p>Like the default constructor but with preallocation of the internal data according to the specified problem <em>size</em>. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1ComplexEigenSolver.html#a47423d74e9d6d1c1583ddf0d0739c38b" title="Default constructor.">ComplexEigenSolver()</a> </dd></dl>

</div>
</div>
<a id="a6b1ad5564efbd25fc8f8f0321424e821"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b1ad5564efbd25fc8f8f0321424e821">&#9670;&nbsp;</a></span>ComplexEigenSolver() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
<div class="memtemplate">
template&lt;typename InputType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::<a class="el" href="classEigen_1_1ComplexEigenSolver.html">ComplexEigenSolver</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structEigen_1_1EigenBase.html">EigenBase</a>&lt; InputType &gt; &amp;&#160;</td>
          <td class="paramname"><em>matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>computeEigenvectors</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor; computes eigendecomposition of given matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">matrix</td><td>Square matrix whose eigendecomposition is to be computed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">computeEigenvectors</td><td>If true, both the eigenvectors and the eigenvalues are computed; if false, only the eigenvalues are computed.</td></tr>
  </table>
  </dd>
</dl>
<p>This constructor calls <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a850a4061eb932a8a30698551201f9cd1" title="Computes eigendecomposition of given matrix.">compute()</a> to compute the eigendecomposition. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a850a4061eb932a8a30698551201f9cd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a850a4061eb932a8a30698551201f9cd1">&#9670;&nbsp;</a></span>compute()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
<div class="memtemplate">
template&lt;typename InputType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1ComplexEigenSolver.html">ComplexEigenSolver</a>&amp; <a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::compute </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structEigen_1_1EigenBase.html">EigenBase</a>&lt; InputType &gt; &amp;&#160;</td>
          <td class="paramname"><em>matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>computeEigenvectors</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes eigendecomposition of given matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">matrix</td><td>Square matrix whose eigendecomposition is to be computed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">computeEigenvectors</td><td>If true, both the eigenvectors and the eigenvalues are computed; if false, only the eigenvalues are computed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to <code>*this</code> </dd></dl>
<p>This function computes the eigenvalues of the complex matrix <code>matrix</code>. The <a class="el" href="classEigen_1_1ComplexEigenSolver.html#ab653e145059038d279758e0732045149" title="Returns the eigenvalues of given matrix.">eigenvalues()</a> function can be used to retrieve them. If <code>computeEigenvectors</code> is true, then the eigenvectors are also computed and can be retrieved by calling <a class="el" href="classEigen_1_1ComplexEigenSolver.html#af9619dd3f289e8659131789039901202" title="Returns the eigenvectors of given matrix.">eigenvectors()</a>.</p>
<p>The matrix is first reduced to Schur form using the <a class="el" href="classEigen_1_1ComplexSchur.html" title="Performs a complex Schur decomposition of a real or complex square matrix.">ComplexSchur</a> class. The Schur decomposition is then used to compute the eigenvalues and eigenvectors.</p>
<p>The cost of the computation is dominated by the cost of the Schur decomposition, which is \( O(n^3) \) where \( n \) is the size of the matrix.</p>
<p>Example: </p><div class="fragment"><div class="line"><a class="code" href="group__matrixtypedefs.html#gae40207c482eaada1403778d301236443">MatrixXcf</a> A = <a class="code" href="classEigen_1_1DenseBase.html#ae814abb451b48ed872819192dc188c19">MatrixXcf::Random</a>(4,4);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;Here is a random 4x4 matrix, A:&quot;</span> &lt;&lt; endl &lt;&lt; A &lt;&lt; endl &lt;&lt; endl;</div>
<div class="line"> </div>
<div class="line">ComplexEigenSolver&lt;MatrixXcf&gt; ces;</div>
<div class="line">ces.compute(A);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The eigenvalues of A are:&quot;</span> &lt;&lt; endl &lt;&lt; ces.eigenvalues() &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The matrix of eigenvectors, V, is:&quot;</span> &lt;&lt; endl &lt;&lt; ces.eigenvectors() &lt;&lt; endl &lt;&lt; endl;</div>
<div class="line"> </div>
<div class="line">complex&lt;float&gt; lambda = ces.eigenvalues()[0];</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;Consider the first eigenvalue, lambda = &quot;</span> &lt;&lt; lambda &lt;&lt; endl;</div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#gaded8ea004065d07b12a363fe1ed36b4c">VectorXcf</a> v = ces.eigenvectors().col(0);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;If v is the corresponding eigenvector, then lambda * v = &quot;</span> &lt;&lt; endl &lt;&lt; lambda * v &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;... and A * v = &quot;</span> &lt;&lt; endl &lt;&lt; A * v &lt;&lt; endl &lt;&lt; endl;</div>
<div class="line"> </div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;Finally, V * D * V^(-1) = &quot;</span> &lt;&lt; endl</div>
<div class="line">     &lt;&lt; ces.eigenvectors() * ces.eigenvalues().asDiagonal() * ces.eigenvectors().inverse() &lt;&lt; endl;</div>
<div class="ttc" id="aclassEigen_1_1DenseBase_html_ae814abb451b48ed872819192dc188c19"><div class="ttname"><a href="classEigen_1_1DenseBase.html#ae814abb451b48ed872819192dc188c19">Eigen::DenseBase::Random</a></div><div class="ttdeci">static const RandomReturnType Random()</div><div class="ttdef"><b>Definition:</b> Random.h:114</div></div>
<div class="ttc" id="agroup__matrixtypedefs_html_gaded8ea004065d07b12a363fe1ed36b4c"><div class="ttname"><a href="group__matrixtypedefs.html#gaded8ea004065d07b12a363fe1ed36b4c">Eigen::VectorXcf</a></div><div class="ttdeci">Matrix&lt; std::complex&lt; float &gt;, Dynamic, 1 &gt; VectorXcf</div><div class="ttdoc">Dynamic×1 vector of type std::complex&lt;float&gt;.</div><div class="ttdef"><b>Definition:</b> Matrix.h:502</div></div>
<div class="ttc" id="agroup__matrixtypedefs_html_gae40207c482eaada1403778d301236443"><div class="ttname"><a href="group__matrixtypedefs.html#gae40207c482eaada1403778d301236443">Eigen::MatrixXcf</a></div><div class="ttdeci">Matrix&lt; std::complex&lt; float &gt;, Dynamic, Dynamic &gt; MatrixXcf</div><div class="ttdoc">Dynamic×Dynamic matrix of type std::complex&lt;float&gt;.</div><div class="ttdef"><b>Definition:</b> Matrix.h:502</div></div>
</div><!-- fragment --><p> Output: </p><pre class="fragment">Here is a random 4x4 matrix, A:
  (-0.211,0.68)  (0.108,-0.444)   (0.435,0.271) (-0.198,-0.687)
  (0.597,0.566) (0.258,-0.0452)  (0.214,-0.717)  (-0.782,-0.74)
 (-0.605,0.823)  (0.0268,-0.27) (-0.514,-0.967)  (-0.563,0.998)
  (0.536,-0.33)   (0.832,0.904)  (0.608,-0.726)  (0.678,0.0259)

The eigenvalues of A are:
 (0.137,0.505)
 (-0.758,1.22)
 (1.52,-0.402)
(-0.691,-1.63)
The matrix of eigenvectors, V, is:
  (-0.246,-0.106)     (0.418,0.263)   (0.0417,-0.296)    (-0.122,0.271)
  (-0.205,-0.629)    (0.466,-0.457)    (0.244,-0.456)      (0.247,0.23)
 (-0.432,-0.0359) (-0.0651,-0.0146)    (-0.191,0.334)   (0.859,-0.0877)
    (-0.301,0.46)    (-0.41,-0.397)     (0.623,0.328)    (-0.116,0.195)

Consider the first eigenvalue, lambda = (0.137,0.505)
If v is the corresponding eigenvector, then lambda * v = 
 (0.0197,-0.139)
    (0.29,-0.19)
(-0.0412,-0.223)
(-0.274,-0.0891)
... and A * v = 
 (0.0197,-0.139)
    (0.29,-0.19)
(-0.0412,-0.223)
(-0.274,-0.0891)

Finally, V * D * V^(-1) = 
  (-0.211,0.68)  (0.108,-0.444)   (0.435,0.271) (-0.198,-0.687)
  (0.597,0.566) (0.258,-0.0452)  (0.214,-0.717)  (-0.782,-0.74)
 (-0.605,0.823)  (0.0268,-0.27) (-0.514,-0.967)  (-0.563,0.998)
  (0.536,-0.33)   (0.832,0.904)  (0.608,-0.726)  (0.678,0.0259)
</pre> 
</div>
</div>
<a id="ab653e145059038d279758e0732045149"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab653e145059038d279758e0732045149">&#9670;&nbsp;</a></span>eigenvalues()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classEigen_1_1ComplexEigenSolver.html#af1d033d8c14e9461203d960c000bb72b">EigenvalueType</a>&amp; <a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::eigenvalues </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the eigenvalues of given matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the column vector containing the eigenvalues.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>Either the constructor ComplexEigenSolver(const MatrixType&amp; matrix, bool) or the member function compute(const MatrixType&amp; matrix, bool) has been called before to compute the eigendecomposition of a matrix.</dd></dl>
<p>This function returns a column vector containing the eigenvalues. Eigenvalues are repeated according to their algebraic multiplicity, so there are as many eigenvalues as rows in the matrix. The eigenvalues are not sorted in any particular order.</p>
<p>Example: </p><div class="fragment"><div class="line"><a class="code" href="group__matrixtypedefs.html#gae40207c482eaada1403778d301236443">MatrixXcf</a> ones = <a class="code" href="classEigen_1_1DenseBase.html#a2755cb4023f7376880523626a8e05101">MatrixXcf::Ones</a>(3,3);</div>
<div class="line">ComplexEigenSolver&lt;MatrixXcf&gt; ces(ones, <span class="comment">/* computeEigenvectors = */</span> <span class="keyword">false</span>);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The eigenvalues of the 3x3 matrix of ones are:&quot;</span> </div>
<div class="line">     &lt;&lt; endl &lt;&lt; ces.eigenvalues() &lt;&lt; endl;</div>
<div class="ttc" id="aclassEigen_1_1DenseBase_html_a2755cb4023f7376880523626a8e05101"><div class="ttname"><a href="classEigen_1_1DenseBase.html#a2755cb4023f7376880523626a8e05101">Eigen::DenseBase::Ones</a></div><div class="ttdeci">static const ConstantReturnType Ones()</div><div class="ttdef"><b>Definition:</b> CwiseNullaryOp.h:672</div></div>
</div><!-- fragment --><p> Output: </p><pre class="fragment">The eigenvalues of the 3x3 matrix of ones are:
(0,-0)
 (0,0)
 (3,0)
</pre> 
</div>
</div>
<a id="af9619dd3f289e8659131789039901202"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9619dd3f289e8659131789039901202">&#9670;&nbsp;</a></span>eigenvectors()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classEigen_1_1ComplexEigenSolver.html#a8f3a8e3a570ca7e6df9a5ebfaa832d59">EigenvectorType</a>&amp; <a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::eigenvectors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the eigenvectors of given matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the matrix whose columns are the eigenvectors.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>Either the constructor ComplexEigenSolver(const MatrixType&amp; matrix, bool) or the member function compute(const MatrixType&amp; matrix, bool) has been called before to compute the eigendecomposition of a matrix, and <code>computeEigenvectors</code> was set to true (the default).</dd></dl>
<p>This function returns a matrix whose columns are the eigenvectors. Column \( k \) is an eigenvector corresponding to eigenvalue number \( k \) as returned by <a class="el" href="classEigen_1_1ComplexEigenSolver.html#ab653e145059038d279758e0732045149" title="Returns the eigenvalues of given matrix.">eigenvalues()</a>. The eigenvectors are normalized to have (Euclidean) norm equal to one. The matrix returned by this function is the matrix \( V \) in the eigendecomposition \( A = V D V^{-1} \), if it exists.</p>
<p>Example: </p><div class="fragment"><div class="line"><a class="code" href="group__matrixtypedefs.html#gae40207c482eaada1403778d301236443">MatrixXcf</a> ones = <a class="code" href="classEigen_1_1DenseBase.html#a2755cb4023f7376880523626a8e05101">MatrixXcf::Ones</a>(3,3);</div>
<div class="line">ComplexEigenSolver&lt;MatrixXcf&gt; ces(ones);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The first eigenvector of the 3x3 matrix of ones is:&quot;</span> </div>
<div class="line">     &lt;&lt; endl &lt;&lt; ces.eigenvectors().col(0) &lt;&lt; endl;</div>
</div><!-- fragment --><p> Output: </p><pre class="fragment">The first eigenvector of the 3x3 matrix of ones is:
(-0.816,0)
 (0.408,0)
 (0.408,0)
</pre> 
</div>
</div>
<a id="aee79c3be45f7d1a8f6dcfffc421dca69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee79c3be45f7d1a8f6dcfffc421dca69">&#9670;&nbsp;</a></span>info()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__enums.html#ga85fad7b87587764e5cf6b513a9e0ee5e">ComputationInfo</a> <a class="el" href="classEigen_1_1ComplexEigenSolver.html">Eigen::ComplexEigenSolver</a>&lt; MatrixType_ &gt;::info </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reports whether previous computation was successful. </p>
<dl class="section return"><dt>Returns</dt><dd><code>Success</code> if computation was successful, <code>NoConvergence</code> otherwise. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="ComplexEigenSolver_8h_source.html">ComplexEigenSolver.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceEigen.html">Eigen</a></li><li class="navelem"><a class="el" href="classEigen_1_1ComplexEigenSolver.html">ComplexEigenSolver</a></li>
    <li class="footer">Generated on Thu Apr 21 2022 13:07:55 for Eigen by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
